package com.cnap.db.mapper;

import com.cnap.db.entity.ScaleStrategyPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 扩缩容策略mapper
 *
 * @author xc
 **/
@Mapper
@Component
public interface ScaleStrategyMapper {


    /**
     * 插入策略信息
     *
     * @param scaleStrategyPO 策略信息
     * @return 结果
     */
    int insertScaleStrategy(@Param("strategy") ScaleStrategyPO scaleStrategyPO);

    /**
     * 根据微服务id查询
     *
     * @param serviceId 微服务id
     * @return 结果
     */
    List<ScaleStrategyPO> selectByServiceId(@Param("svcId") String serviceId);

    /**
     * 根据微服务id和类型查询
     *
     * @param svcId 服务id
     * @param type  类型
     * @return 结果
     */
    ScaleStrategyPO selectByServiceIdAndScaleType(@Param("svcId") String svcId, @Param("scaleType") String type);

    /**
     * 根据微服务id删除
     *
     * @param serviceId 微服务id
     * @return 结果
     */
    int deleteByServiceId(@Param("svcId") String serviceId);

    /**
     * 根据id删除
     *
     * @param id id
     * @return 结果
     */
    int deleteById(@Param("id") String id);
}
